System and method for generating gestures

ABSTRACT

Precise analysis and description of movement and gestures by a human or other object are carried out by a computing device assisted by camera and distance sensors. The same gestures and movements of an object in different locations and in different orientations may be identified according to coordinates and offsets applied to coordinates, and gesture-making areas projected so as to surround the object. The techniques can accurately identify actions of movements of the human or other object.

FIELD

The subject matter herein generally relates to communication technology.

BACKGROUND

Users can be provided with somatosensory equipment which is activated byuser's gestures and one or more applications can be carried outaccording to the gestures which cause activation. But the equipmentcannot provide accurate identification or determination for the gesturescausing activation. For example, it cannot determine whether a gesturehas touched a designated area.

BRIEF DESCRIPTION OF THE DRAWINGS

Implementations of the present technology will now be described, by wayof example only, with reference to the attached figures, wherein:

FIG. 1 is a diagrammatic view of an operating environment of oneembodiment of a computing device;

FIG. 2 is a diagrammatic view of coordinates of an object;

FIG. 3 is a diagrammatic view of coordinates of an object in anotherembodiment;

FIG. 4 is a block diagram of one embodiment of a computing device;

FIG. 5 is a diagrammatic view of one embodiment for obtainingcoordinates of a center point of a gesture-making area;

FIG. 6 is a diagrammatic view of one embodiment of other gesture-makingareas;

FIG. 7 is a diagrammatic view of one embodiment of a gesture-making areawhen a object is moving; and

FIG. 8 is a diagrammatic view of one embodiment for calculating offsetcoordinates;

FIG. 9 is a flowchart of one embodiment of a method for generatinggestures.

DETAILED DESCRIPTION

It will be appreciated that for simplicity and clarity of illustration,where appropriate, reference numerals have been repeated among thedifferent figures to indicate corresponding or analogous elements. Inaddition, numerous specific details are set forth in order to provide athorough understanding of the embodiments described herein. However, itwill be understood by those of ordinary skill in the art that theembodiments described herein can be practiced without these specificdetails. In other instances, methods, procedures, and components havenot been described in detail so as not to obscure the related relevantfeature being described. Also, the description is not to be consideredas limiting the scope of the embodiments described herein. The drawingsare not necessarily to scale and the proportions of certain parts may beexaggerated to better illustrate details and features of the presentdisclosure.

It should be noted that references to “an” or “one” embodiment in thisdisclosure are not necessarily to the same embodiment, and suchreferences mean “at least one.”

In general, the word “module” as used hereinafter, refers to logicembodied in computing or firmware, or to a collection of softwareinstructions, written in a programming language, such as, Java, C, orassembly. One or more software instructions in the modules may beembedded in firmware, such as in an erasable programmable read onlymemory (EPROM). The modules described herein may be implemented aseither software and/or computing modules and may be stored in any typeof non-transitory computer-readable medium or other storage device. Somenon-limiting examples of non-transitory computer-readable media includeCDs, DVDs, BLU-RAY, flash memory, and hard disk drives. The term“comprising”, when utilized, means “including, but not necessarilylimited to”; it specifically indicates open-ended inclusion ormembership in a so-described combination, group, series and the like.

FIG. 1 is a diagrammatic view of an operating environment of oneembodiment of a computing device 1. The computing device 1 (e.g.somatosensory equipment) senses one or more objects (in front of thecomputing device 1) and obtains coordinates of the objects. In theillustrated embodiment, the objects may be, for example, one or morehuman beings. The coordinates of the objects may be, for example,coordinates of the one or more humans. The coordinates may include, forexample, a head coordinate, a left shoulder coordinate, a right shouldercoordinate, a left elbow coordinate, a right elbow coordinate, a leftwrist coordinate, a right wrist coordinate, a left leg joint coordinate,and a right leg joint coordinate. FIG. 2 illustrates the computingdevice 1 obtaining the right shoulder coordinates. FIG. 3 illustratesthe computing device 1 obtaining the right elbow coordinates. Thecomputing device 1 may include one or more cameras utilized to captureimages of objects located in front of the computing device 1.

The computing device 1, which is configured to view and analyze gestures(or actions) of an object in front of it, includes one or moreapplications which may be carried out (e.g. startup, shutdown) accordingto the viewed gestures. The applications may be for example, but not belimited to, games, players, browsers, and chat software.

A display device 2 is configured to display one or more graphical objectinterfaces (GUI) of the applications of the computing device 1 and/orimages of the objects which are captured by the computing device 1.

The computing device 1 may be an internal device built into the displaydevice 2, or an independent device connecting to the display device 2with cable or wireless communication. In the illustrated embodiment, thecomputing device 1 is installed on one side of the display device 2(e.g. a middle point of a top edge of the display device 2).

FIG. 4 is a block diagram of one embodiment of a computing device. Thecomputing device 1 comprises a non-transitory storage system 150, aprocessor 160, and a gesture generation system 10. The gesturegeneration system 10 comprises an obtaining module 110, a calculatingmodule 120, a compensating module 130, and a generating module 140. Themodules 110-140 are stored in the non-transitory storage system 150 andtheir functions are executed by the processor 160.

The obtaining module 110 obtains coordinates of an object. The obtainingmodule 110 may, for example, obtain the coordinates of the object by oneor more distance sensors in the computing device 1, or by analyzingimages captured by the computing device 1, to obtain the coordinates ofthe object.

The calculating module 120 calculates a gesture-making area and acoordinate of a center point of the gesture-making area according to thecoordinates of the object. The coordinate of the center point of thegesture-making area includes a coordinate of a center point of the leftgesture-making area and a coordinate of a center point of the rightgesture-making area. The gesture-making area comprises a leftgesture-making area and a right gesture-making area.

The calculation of the coordinate of the center point of the leftgesture-making area includes: C(x, y, z)=P(x, y, z)+d(x, y, z), whereinthe C(x, y, z) is the coordinate of the center point of the leftgesture-making area, the P(x, y, z) is the left shoulder coordinate, thed(x, y, z) is an arbitrary coordinate that is configured to |d(x, y,z)|<D1, and the D1 is a maximum distance between the left shouldercoordinate and the head coordinate. A distance between a left side ofthe left gesture-making area and the center point of the leftgesture-making area is S, S=k*D2, the k is a real number, and the D2 isa distance between the left elbow coordinate and the left wristcoordinate. In the illustrated embodiment, the k is a predeterminedvalue within the range of (0.1-3).

The left side of gesture-making area, which distances the S from thecoordinate of the center point of the left gesture-making area, isgenerated when the C(x, y, z) serves as the coordinate of the centerpoint of the left gesture-making area.

The calculation of the coordinate of the center point of the rightgesture-making area includes: C1(x, y, z)=P1(x, y, z)+d1(x, y, z),wherein the C1(x, y, z) is the coordinate of the center point of theright gesture-making area, the P1(x, y, z) is the right shouldercoordinate, the d1(x, y, z) is an arbitrary coordinate that isconfigured to |d1(x, y, z)|<D11, and the D11 is a maximum distancebetween the right shoulder coordinate and the head coordinate. Adistance between a left side of the right gesture-making area and thecenter point of the right gesture-making area is S1, S1=k1*D12, the k1is a real number, and the D12 is a distance between the right elbowcoordinate and the right wrist coordinate. In the illustratedembodiment, the k1 is a predetermined value within the range of (0.1-3).In the same way as described above, the right side of gesture-makingarea, which distances the S1 from the coordinate of the center point ofthe right gesture-making area, is generated when the C1(x, y, z) servesas the coordinate of the center point of the left gesture-making area(referring to FIG. 5). As illustrated in FIG. 5, a shape of the rightgesture-making area is a rectangle. The disclosure is not limitedthereto, the right gesture-making area may be, for example, an area ofthree-dimensional-space. The shape of the right gesture-making area maybe, for example, an oval, a diamond, a hexagon, and others. Thedistances S1, between the coordinate of the center point of the rightgesture-making area and a plurality of edges (e.g. front, behind, top orbottom edge) of the gesture-making area, are all different. According toorientations of different objects, an adapted area is configured byadjusting S1 (referring to FIG. 6).

According to the formula C1(x, y, z)=P1(x, y, z)+d1(x, y, z), the rightshoulder coordinate P1(x, y, z) changes when the object moves/is moved,so the C1(x, y, z) changes with the movement, and the rightgesture-making area also moves accordingly, the disclosure is notlimited to one position. Referring to FIG. 7, the right gesture-makingarea moves to right hand side when the object is moved to the right.Similarly, the left gesture-making area also moves with the object.

The compensating module 130 calculates offset coordinates, andcompensates the coordinate of the center point of the gesture-makingarea according to the calculated offset coordinates, to correct thegesture-making area.

The offset coordinate includes a left offset coordinate and a rightoffset coordinate.

The calculation of the left offset coordinate includes the left offsetcoordinate being I(x, y, z), wherein the left offset coordinate isobtained after training based on machine learning algorithms. Themachine learning algorithms can be decision tree algorithms.

An example of calculating an x-axis coordinate value of the left offsetcoordinates is given. Referring to FIG. 8, an actual x-axis distance DLbetween the object and the computing device is measured by a tool (e.g.a ruler) when the object is located in a position (e.g. a left positionin front of the computing device 1). A test x-axis distance between thecenter point of the left gesture-making area and the computing device iscalculated by the computing device 1 and a difference value between theactual distance and the test value is obtained. In the same way asdescribed above, a plurality of different values may be obtained, whichcorrespond to a plurality of positions of the object. An average valueof the plurality of difference values is calculated, the average valuebeing the x-axis coordinate value of the left offset coordinates.Similarly, a y-axis coordinate value of the left offset coordinates anda z-axis coordinate value of the left offset coordinates also can beobtained.

The compensation applied to the coordinate of the center point of theleft gesture-making area is: Ĉ(x, y, z)=C(x, y, z)+1(x, y, z), whereinthe Ĉ(x, y, z) is the compensated coordinate of the center point of theright gesture-making area.

The calculation of the left offset coordinate includes the right offsetcoordinate being I1(x, y, z), wherein the right offset coordinate isobtained after training based on machine learning algorithms. Themachine learning algorithms can be decision tree algorithms.

An example of calculating an x-axis coordinate value of the right offsetcoordinates is given. Referring to FIG. 8, an actual x-axis distance DRbetween the object and the computing device is measured by a tool (e.g.a ruler) when the object is located in a position (e.g. a right positionin front of the computing device 1). A test x-axis distance between thecenter point of the right gesture-making area and the computing deviceis calculated by the computing device 1 and a difference value betweenthe actual distance and the test value is obtained. In the same way asdescribed above, a plurality of different values may be obtained, whichcorrespond to a plurality of positions of the object. An average valueof the plurality of difference values is calculated, the average valuebeing the x-axis coordinate value of the right offset coordinates. Ay-axis coordinate value of the right offset coordinates and a z-axiscoordinate value of the right offset coordinates also can be obtained.

The compensation applied to the coordinate of the center point of theright gesture-making area is: C1̂(x, y, z)=C1(x, y, z)+11(x, y, z),wherein the C1̂(x, y, z) is the compensated coordinate of the centerpoint of the right gesture-making area.

The generating module 140 analyzes and describes a gesture (e.g. anupward gesture, an upward gesture, a downward gesture, a leftwardgesture, a rightward gesture) according to the offset coordinates andthe corrected gesture-making area, and accordingly generates a gestureevent. In the illustrated embodiment, the wrist coordinates include aleft wrist coordinate and a right wrist coordinate. The left wristcoordinate is adjusted by reference to an offset coordinate of the leftwrist (in other words, the left wrist coordinate is obtained by addingthe left wrist coordinate and the offset coordinate of the left wrist),and the right wrist coordinate is adjusted by reference to an offsetcoordinate of the right wrist (namely, the right wrist coordinate isobtained by adding the right wrist coordinate and the offset coordinateof the right wrist).

The analyzing and description of the gesture comprises the followingparameters; where the x-axis is a horizontal axis, left side of the axisis positive side of the axis, and right is negative; where the y-axis isa vertical axis, up is positive, down is negative. Where the z-axis is adepth axis, front is positive, behind is negative. When thegesture-making area is the left side of the gesture-making area, thegenerating module 140.

The generating module 140 generates an upward gesture event when they-axis coordinate value of the left wrist coordinate is greater than they-axis coordinate value of a top edge of the left gesture-making area(an upward gesture is analyzed and described according to the abovedescription in this paragraph).

The generating module 140 generates a downward gesture event when they-axis coordinate value of the left wrist coordinate is less than they-axis coordinate value of a bottom edge of the left gesture-making area(a downward gesture is analyzed and described).

The generating module 140 generates a leftward gesture event when thex-axis coordinate value of the left wrist coordinate is greater than thex-axis coordinate value of a left edge of the left gesture-making area(an leftward gesture is analyzed and described);

The generating module 140 generates a rightward gesture event when thex-axis coordinate value of the left wrist coordinate is less than thex-axis coordinate value of a right edge of the left gesture-making area(an rightward gesture is analyzed and described).

The generating module 140 generates a forward gesture event when thez-axis coordinate value of the left wrist coordinate is greater than thez-axis coordinate value of a front edge of the left gesture-making area.

The generating module 140 generates a clockwise-rotating gesture eventwhen the left wrist coordinate moves through a first group of gesturesin a predetermined time (e.g. 1 second); wherein the first group ofgestures includes: in a first order, the downward gesture, the leftwardgesture and the upward gesture. In a second order, the leftward gesture,the upward gesture, and the rightward gesture; and in a third order, theupward gesture, the rightward gesture, and the downward gesture. Thefirst group of gestures may also include, in a fourth order, therightward gesture, the downward gesture, and the leftward gesture event.

The generating module 140 may also generate an anticlockwise-rotatinggesture event when the left wrist coordinate moves through a secondgroup of gestures in a predetermined time. The second group of gesturesincludes, in a fifth order, the downward gesture, the rightward gesture,and the upward gesture; in a sixth order, the rightward gesture, theupward gesture, and the leftward gesture; in a seventh order, the upwardgesture, the leftward gesture, and the downward gesture event. In aneighth order, the second group of gestures may include the leftwardgesture, the downward gesture, and the rightward gesture.

When the gesture-making area is the right side of the gesture-makingarea, the generating module 140.

The generating module 140 generates an upward gesture event when they-axis coordinate value of the right wrist coordinate is greater thanthe y-axis coordinate value of a top edge of the right gesture-makingarea.

The generating module 140 generates a downward gesture event when they-axis coordinate value of the right wrist coordinate is less than they-axis coordinate value of a bottom edge of the right gesture-makingarea.

The generating module 140 generates a leftward gesture event when thex-axis coordinate value of the right wrist coordinate is greater thanthe x-axis coordinate value of a left edge of the right gesture-makingarea.

The generating module 140 generates a rightward gesture event when thex-axis coordinate value of the right wrist coordinate is less than thex-axis coordinate value of a right edge of the right gesture-makingarea.

The generating module 140 generates a forward gesture event when thez-axis coordinate value of the right wrist coordinate is greater thanthe z-axis coordinate value of a front edge of the right gesture-makingarea.

generates a clockwise-rotating gesture event when the right wristcoordinate moves through a first group of gestures in a predeterminedtime (e.g. 1 second); wherein the first group of gestures includes: in afirst order, the downward gesture, the leftward gesture event and theupward gesture. In a second order, the leftward gesture, the upwardgesture and the rightward gesture; and in a third order, the upwardgesture, the rightward gesture and downward gesture. The first group ofgestures may also include, in a fourth order, the rightward gesture, thedownward gesture, and the leftward gesture.

The generating module 140 may also generates an anticlockwise-rotatinggesture when the right wrist coordinate moves through a second group ofgestures in a predetermined time (e.g. 1 second). The second group ofgestures includes, in a fifth order, the downward gesture, the rightwardgesture and the upward gesture; in a sixth order, the rightward gesture,the upward gesture and the leftward gesture; in a seventh order, theupward gesture, the leftward gesture and the downward gesture. In aeighth order, the second group of gestures may include the leftwardgesture, the downward gesture, and the rightward gesture.

FIG. 9 is a flowchart of one embodiment of a method. The method isoperable to be executed in a computing device (e.g. somatosensoryequipment). The computing device may include an obtaining module, acalculating module, a compensating module and a generating module.

At block 210, the computing device obtains coordinates of an object. Thecomputing device may, for example, obtain the coordinates of the objectby one or more distance sensors, or by analyzing images captured by atleast one camera in the computing device, to obtain the coordinates ofthe object.

At block 220, the computing device calculates a gesture-making area anda coordinate of a center point of the gesture-making area according tothe coordinates of the object. The coordinate of the center point of thegesture-making area includes a coordinate of a center point of the leftgesture-making area and a coordinate of a center point of the rightgesture-making area. The gesture-making area comprises a leftgesture-making area and a right gesture-making area.

The formula for calculating the coordinate of the center point of theleft gesture-making area is following: C(x, y, z)=P(x, y, z)+d(x, y, z),wherein the C(x, y, z) is the coordinate of the center point of the leftgesture-making area, the P(x, y, z) is the left shoulder coordinate, thed(x, y, z) is an arbitrary coordinate that is configured to |d(x, y,z)|<D1, and the D1 is a maximum distance between the left shouldercoordinate and the head coordinate. A distance between a left edge ofthe left gesture-making area and the center point of the leftgesture-making area is S, S=k*D2, the k is a real number, and the D2 isa distance between the left elbow coordinate and the left wristcoordinate. In the illustrated embodiment, the k is a predeterminedvalue within the range of (0.1-3).

The left side of gesture-making area, which distances the S from thecoordinate of the center point of the left gesture-making area, isgenerated when the C(x, y, z) serves as the coordinate of the centerpoint of the left gesture-making area.

The formula for calculating the coordinate of the center point of theright gesture-making area further includes: C1(x, y, z)=P1(x, y,z)+d1(x, y, z), wherein the C1(x, y, z) is the coordinate of the centerpoint of the right gesture-making area, the P1(x, y, z) is the rightshoulder coordinate, the d1(x, y, z) is an arbitrary coordinate that isconfigured to |d1(x, y, z)|<D11, and the D11 is a maximum distancebetween the right shoulder coordinate and the head coordinate. Adistance between a left side of the right gesture-making area and thecenter point of the right gesture-making area is S1, S1=k1*D12, the k1is a real number, and the D12 is a distance between the right elbowcoordinate and the right wrist coordinate. In the illustratedembodiment, the k1 is a predetermined value within the range of (0.1-3).In the same way as described above, the right said of gesture-makingarea, which distances the S1 from the coordinate of the center point ofthe right gesture-making area, is generated when the C1(x, y, z) servesas the coordinate of the center point of the left gesture-making area(referring to FIG. 5). As illustrated in FIG. 5, a shape of the rightgesture-making area is a rectangle. The disclosure is not limitedthereto, the right gesture-making area may be, for example, an area ofthree-dimensional-space. The shape of the right gesture-making area maybe, for example, an oval, a diamond, hexagon, and others. The distancesS1, between the coordinate of the center point of the rightgesture-making area and a plurality of edges (e.g. front, behind, top orbottom edge) of the gesture-making area, are all different. According toorientations of different objects, an adapted area is configured byadjusting S1 (referring to FIG. 6).

According to the formula C1(x, y, z)=P1(x, y, z)+d1(x, y, z), the rightshoulder coordinate P1(x, y, z) changes when the object moves/is moved,so the C1(x, y, z) changes with the movement, and the rightgesture-making area also moves accordingly, the disclosure is notlimited to one position. Referring to FIG. 7, the right gesture-makingarea moves to right hand side when the object is moved to the right.Similarly, the left gesture-making area also moves with the object.

At block 230, the computing device calculates offset coordinates, andcompensates the coordinate of the center point of the gesture-makingarea according to the calculated offset coordinates, to correct thegesture-making area.

The offset coordinate includes a left offset coordinate and a rightoffset coordinate.

The calculation of the left offset coordinate further includes: the leftoffset coordinate being I(x, y, z), wherein the left offset coordinateis obtained after training based on machine learning algorithms. Themachine learning algorithms can be decision tree algorithms.

An example of calculating an x-axis coordinate value of the left offsetcoordinates is given. Referring to FIG. 8, an actual x-axis distance DLbetween the object and the computing device is measured by a tool (e.g.a ruler) when the object is located in a position (e.g. a left positionin front of the computing device). A test x-axis distance between thecenter point of the left gesture-making area and the computing device iscalculated by the computing device, and a difference value between theactual distance and the test value is obtained. In the same way asdescribed above, a plurality of different values may be obtained, whichcorrespond to a plurality of positions of the object. An average valueof the plurality of difference values is calculated, the average valuebeing the x-axis coordinate value of the left offset coordinates.Similarly, a y-axis coordinate value of the left offset coordinates anda z-axis coordinate value of the left offset coordinates also can beobtained.

The formula for compensating the coordinate of the center point of theleft gesture-making area is: Ĉ(x, y, z)=C(x, y, z)+1(x, y, z), whereinthe Ĉ(x, y, z) is the compensated coordinate of the center point of theright gesture-making area.

The right offset coordinate being I1(x, y, z), wherein the right offsetcoordinate is obtained after training based on machine learningalgorithms. The machine learning algorithms can be decision treealgorithms.

An example of calculating an x-axis coordinate value of the right offsetcoordinates is given. Referring to FIG. 8, an actual x-axis distance DRbetween the object and the computing device is measured by a tool (e.g.a ruler) when the object is located in a position (e.g. a right positionin front of computing device), a test x-axis distance between the centerpoint of the right gesture-making area and the computing device iscalculated by the computing device, and a difference value between theactual distance and the test value is obtained. In the same way asdescribed above, a plurality of different values may be obtained, whichcorrespond to a plurality of positions of the object. An average valueof the plurality of difference values is calculated, the average valuebeing the x-axis coordinate value of the right offset coordinates. Ay-axis coordinate value of the right offset coordinates and a z-axiscoordinate value of the right offset coordinates also can be obtained.

The formula for compensating the coordinate of the center point of theright gesture-making area is: C1̂(x, y, z)=C1(x, y, z)+11(x, y, z),wherein the C1̂(x, y, z) is the compensated coordinate of the centerpoint of the right gesture-making area.

At block 240, the computing device analyzes and describes a gestureaccording to the offset coordinates and the corrected gesture-makingarea, and generates a gesture event according to the analyzed anddescribed gesture (e.g. an upward gesture, an upward gesture, a downwardgesture, a leftward gesture, a rightward gesture). In the illustratedembodiment, the wrist coordinates include a left wrist coordinate and aright wrist coordinate. The left wrist coordinate is adjusted byreferences to an offset coordinate of the left wrist (namely, the leftwrist coordinate is obtained by adding the left wrist coordinate and theoffset coordinate of the left wrist), and the right wrist coordinate isadjusted by reference to an offset coordinate of the right wrist (inother words, the right wrist coordinate is obtained by adding the rightwrist coordinate and the offset coordinate of the right wrist).

In block 240, where the x-axis is a horizontal axis, left side of theaxis is positive side of the axis, and right is negative; where they-axis is a vertical axis, up is positive, down is negative. Where thez-axis is a depth axis, front is positive, behind is negative. When thegesture-making area is a left side of the gesture-making area.

The computing device generates an upward gesture event when the y-axiscoordinate value of the left wrist coordinate is greater than the y-axiscoordinate value of a top edge of the left gesture-making area.

The computing device generates a downward gesture event when the y-axiscoordinate value of the left wrist coordinate is less than the y-axiscoordinate value of a bottom edge of the left gesture-making area.

The computing device generates a leftward gesture event when the x-axiscoordinate value of the left wrist coordinate is greater than the x-axiscoordinate value of a left edge of the left gesture-making area.

The computing device generates a rightward gesture event when the x-axiscoordinate value of the left wrist coordinate is less than the x-axiscoordinate value of a right edge of the left gesture-making area.

The computing device generates a forward gesture event when the z-axiscoordinate value of the left wrist coordinate is greater than the z-axiscoordinate value of a front edge of the left gesture-making area.

The computing device generates a clockwise-rotating gesture event whenthe left wrist coordinate moves through a first group of gestures in apredetermined time (e.g. 1 second); wherein the first group of gesturesincludes: in a first order, the downward gesture, the leftward gestureand the upward gesture. In a second order, the leftward gesture, theupward gesture, and the rightward gesture; and in a third order, theupward gesture, the rightward gesture, and the downward gesture. Thefirst group of gestures may also include, in a fourth order, therightward gesture, the downward gesture, and the leftward gesture event.

The computing device may also generates an anticlockwise-rotatinggesture event when the left wrist coordinate moves through a secondgroup of gestures in a predetermined time. The second group of gesturesincludes, in a fifth order, the downward gesture, the rightward gesture,and the upward gesture; in a sixth order, the rightward gesture, theupward gesture, and the leftward gesture; in a seventh order, the upwardgesture, the leftward gesture, and the downward gesture event. In aneighth order, the second group of gestures may include the leftwardgesture, the downward gesture, and the rightward gesture.

When the gesture-making area is right gesture-making area, the computingdevice.

The computing device generates an upward gesture event when the y-axiscoordinate value of the right wrist coordinate is greater than they-axis coordinate value of a top edge of the right gesture-making area(an upward gesture is analyzed and described according to the abovedescription in this paragraph).

The computing device generates a downward gesture event when the y-axiscoordinate value of the right wrist coordinate is less than the y-axiscoordinate value of a bottom edge of the right gesture-making area (adownward gesture is analyzed and described according to the abovedescription in this paragraph).

The computing device generates a leftward gesture event when the x-axiscoordinate value of the right wrist coordinate is greater than thex-axis coordinate value of a left edge of the right gesture-making area(a leftward gesture is analyzed and described).

The computing device generates a rightward gesture event when the x-axiscoordinate value of the right wrist coordinate is less than the x-axiscoordinate value of a right edge of the right gesture-making area (arightward gesture is analyzed and described).

The computing device generates a forward gesture event when the z-axiscoordinate value of the right wrist coordinate is greater than thez-axis coordinate value of a front edge of the right gesture-makingarea.

The computing device generates a clockwise-rotating gesture event whenthe right wrist coordinate moves through a first group of gestures in apredetermined time (e.g. 1 second); wherein the first group of gesturesincludes: in a first order, the downward gesture, the leftward gestureevent and the upward gesture. In a second order, the leftward gesture,the upward gesture and the rightward gesture; and in a third order, theupward gesture, the rightward gesture and downward gesture. The firstgroup of gestures may also include, in a fourth order, the rightwardgesture, the downward gesture, and the leftward gesture.

The computing device may also analyze and describe ananticlockwise-rotating gesture when the right wrist coordinate movesthrough a second group of gestures in a predetermined time (e.g. 1second). The second group of gestures includes, in a fifth order, thedownward gesture, the rightward gesture and the upward gesture; in asixth order, the rightward gesture, the upward gesture and the leftwardgesture; in a seventh order, the upward gesture, the leftward gestureand the downward gesture. In a eighth order, the second group ofgestures may include the leftward gesture, the downward gesture , andthe rightward gesture.

It should be emphasized that the above-described embodiments of thepresent disclosure, including any particular embodiments, are merelypossible examples of implementations, set forth for a clearunderstanding of the principles of the disclosure. Many variations andmodifications can be made to the above-described embodiment(s) of thedisclosure without departing substantially from the spirit andprinciples of the disclosure. All such modifications and variations areintended to be included herein within the scope of this disclosure andprotected by the following claims.

What is claimed is:
 1. A computing device for generating a gestureevent, comprising: at least one processor; a non-transitory storagesystem coupled to the at least one processor and configured to store oneor more programs that are executed by the at least one processor, theone or more programs comprising instructions for: obtaining coordinatesof an object; calculating a gesture-making area and coordinates of acenter point of the gesture-making area according to the coordinates ofthe object; calculating offset coordinates; compensating, to correct thegesture-making area, the coordinate of the center point of thegesture-making area according to the offset coordinates, to correct thegesture-making area; and generating the gesture event according to theoffset coordinates and the corrected gesture-making area.
 2. Thecomputing device of claim 1, wherein the coordinates of the objectcomprises: a head coordinate, a left shoulder coordinate, a rightshoulder coordinate, a left elbow coordinate, a right elbow coordinate,a left wrist coordinate, a right wrist coordinate, a left leg jointcoordinate, and/or a right leg joint coordinate.
 3. The computing deviceof claim 2, wherein the gesture-making area comprises a rightgesture-making area, the coordinate of the center point of thegesture-making area is a coordinate of a center point of the rightgesture-making area, and the calculation of the coordinate of the centerpoint of the right gesture-making area further comprises: C1(x, y,z)=P1(x, y, z)+d1(x, y, z), wherein the C1(x, y, z) is the coordinate ofthe center point of the right gesture-making area, the P1(x, y, z) isthe right shoulder coordinate, the d1(x, y, z) is an arbitrarycoordinate that is configured to |d1(x, y, z)|<D11, the D11 is a maximumdistance between the right shoulder coordinate and the head coordinate,a distance between a left edge of the right gesture-making area and thecenter point of the right gesture-making area is S1, S1=k1*D12, the k1is a real number, and the D12 is a distance between the right elbowcoordinate and the right wrist coordinate.
 4. The computing device ofclaim 3, wherein the offset coordinate comprises a right offsetcoordinate, the calculation of the right offset coordinate furthercomprises: (a2) calculating x-axis, y-axis, or z-axis test distancebetween the center point of the left gesture-making area and thecomputing device; (b2) calculating difference value between testdistance and an actual distance; wherein the actual distance, measuredwith tool, is a x-axis, y-axis, or z-axis distance between the objectand the computing device; repeating (a2)-(b2) while the position of theobject is changed, to obtain a plurality of difference values betweenthe test distance and the actual distance, which are correspond to aplurality of positions of the object; calculating an average value ofthe plurality of difference values, the average value is the x-axis,y-axis or z-axis coordinate value of the right offset coordinate.
 5. Thedevice of claim 3, wherein the generation of the gesture eventcomprises: generating an upward gesture event when the y-axis coordinatevalue of the right wrist coordinate is greater than the y-axiscoordinate value of a top edge of the right gesture-making area;generating a downward gesture event when the y-axis coordinate value ofthe right wrist coordinate is less than the y-axis coordinate value of abottom edge of the right gesture-making area; generating a leftwardgesture event when the x-axis coordinate value of the right wristcoordinate is greater than the x-axis coordinate value of a left edge ofthe right gesture-making area; generating a rightward gesture event whenthe x-axis coordinate value of the right wrist coordinate is less thanthe x-axis coordinate value of a right edge of the right gesture-makingarea; generating a forward gesture event when the z-axis coordinatevalue of the right wrist coordinate is greater than the z-axiscoordinate value of a front edge of the right gesture-making area;generating a clockwise-rotation gesture event when the right wristcoordinate satisfies to generate a first group of gestures in apredetermined time, wherein the first group of gestures comprises: in afirst order, a downward gesture, a leftward gesture and an upwardgesture; in a second order, a leftward gesture, an upward gesture and arightward gesture; in a third order, an upward gesture, a rightwardgesture and a downward gesture; or in a fourth order, a rightwardgesture, a downward gesture and a leftward gesture; and generating ananticlockwise-rotation gesture event when the right wrist coordinatesatisfies to generate a second group of gesture events in apredetermined time, wherein the second group of gesture eventscomprises: in a fifth order, a downward gesture, a rightward gesture andan upward gesture; in a sixth order, a rightward gesture, an upwardgesture and a leftward gesture; in a seventh order, an upward gesture, aleftward gesture and a downward gesture; or in a eighth order, aleftward gesture, a downward gesture and a rightward gesture.
 6. Thecomputing device of claim 2, wherein the gesture-making area comprises aleft gesture-making area, the coordinate of the center point of thegesture-making area is a coordinate of a center point of the leftgesture-making area, and the calculation of the coordinate of the centerpoint of the left gesture-making area further comprises: C(x, y, z)=P(x,y, z)+d(x, y, z), wherein the C(x, y, z) is the coordinate of the centerpoint of the left gesture-making area, the P(x, y, z) is the leftshoulder coordinate, the d(x, y, z) is an arbitrary coordinate that isconfigured to |d(x, y, z)|<D1, the D1 is a maximum distance between theleft shoulder coordinate and the head coordinate, a distance between aleft edge of the left gesture-making area and the center point of theleft gesture-making area is S, S=k*D2, the k is a real number, and theD2 is a distance between the left elbow coordinate and the left wristcoordinate.
 7. The computing device of claim 6, wherein the offsetcoordinate comprises a left offset coordinate, the calculation of theleft offset coordinate further comprises: (a1) calculating x-axis,y-axis, or z-axis test distance between the center point of the leftgesture-making area and the computing device; (b1) calculatingdifference value between the test distance and an actual distance;wherein the actual distance, measured with tool, is a x-axis, y-axis, orz-axis distance between the object and the computing device; repeating(a1)-(b1) while the position of the object is changed, to obtain aplurality of difference values between the test distance and the actualdistance, which are correspond to a plurality of positions of theobject; and calculating an average value of the plurality of differencevalues, the average value is the x-axis, y-axis or z-axis coordinatevalue of the left offset coordinate.
 8. The computing device of claim 6,wherein the generation of the gesture event comprises: generating anupward gesture event when the y-axis coordinate value of the left wristcoordinate is greater than the y-axis coordinate value of a top edge ofthe left gesture-making area; generating a downward gesture event whenthe y-axis coordinate value of the left wrist coordinate is less thanthe y-axis coordinate value of a bottom edge of the left gesture-makingarea; generating a leftward gesture event when the x-axis coordinatevalue of the left wrist coordinate is greater than the x-axis coordinatevalue of a left edge of the left gesture-making area; generating arightward gesture event when the x-axis coordinate value of the leftwrist coordinate is less than the x -axis coordinate value of a rightedge of the left gesture-making area; generating a forward gesture eventwhen the z-axis coordinate value of the left wrist coordinate is greaterthan the z-axis coordinate value of a front edge of the leftgesture-making area; generating a clockwise-rotation gesture event whenthe left wrist coordinate moves through a first group gestures in apredetermined time, wherein the first group of gestures comprises: in afirst order, a downward gesture, a leftward gesture and an upwardgesture; in a second order, a leftward gesture, an upward gesture and arightward gesture; in a third order, an upward gesture, a rightwardgesture and a downward gesture; or in a fourth order, a rightwardgesture, a downward gesture and a leftward gesture; and generating ananticlockwise-rotation gesture event when the left wrist coordinatemoves through a second group of gestures in a predetermined time,wherein the second group of gestures comprises: in a fifth order, adownward gesture, a rightward gesture and an upward gesture; in a sixthorder, a rightward gesture, an upward gesture and a leftward gesture; ina seventh order, an upward gesture, a leftward gesture and a downwardgesture; or in an eighth order, a leftward gesture, a downward gestureand a rightward gesture.
 9. A method for generating a gesture eventoperable to be executed in a computing device, wherein the methodcomprising: obtaining coordinates of a object; calculating agesture-making area and a coordinate of a center point of thegesture-making area according to the coordinates of the object;calculating offset coordinates; compensating, to correct thegesture-making area, the coordinate of the center point of thegesture-making area according to the offset coordinates; generating thegesture event according to the offset coordinates and the correctedgesture-making area.
 10. The method of claim 9, wherein the coordinatesof the object comprises: a head coordinate, a left shoulder coordinate,a right shoulder coordinate, a left elbow coordinate, a right elbowcoordinate, a left wrist coordinate, a right wrist coordinate, a leftleg joint coordinate, and/or a right leg joint coordinate.
 11. Themethod of claim 10, wherein the gesture-making area comprises a rightgesture-making area, the coordinate of the center point of thegesture-making area is a coordinate of a center point of the rightgesture-making area, and calculation of the coordinate of the centerpoint of the right gesture-making area further comprising: C1(x, y,z)=P1(x, y, z)+d1(x, y, z), wherein the C1(x, y, z) is the coordinate ofthe center point of the right gesture-making area, the P1(x, y, z) isthe right shoulder coordinate, the d1(x, y, z) is an arbitrarycoordinate that is configured to |d1(x, y, z)|<D11, the D11 is a maximumdistance between the right shoulder coordinate and the head coordinate,a distance between a left edge of the right gesture-making area and thecenter point of the right gesture-making area is S1, S1=k*D12, the K isa real number, and the D12 is a distance between the right elbowcoordinate and the right wrist coordinate.
 12. The method of claim 11,wherein the offset coordinate comprises a right offset coordinate, thecalculation of the right offset coordinate further comprises: (a2)calculating x-axis, y-axis, or z-axis test distance between the centerpoint of the left gesture-making area and the computing device; (b2)calculating difference value between test distance and an actualdistance; wherein the actual distance, measured with tool, is a x-axis,y-axis, or z-axis distance between the object and the computing device;repeating (a2)-(b2) while the position of the object is changed, toobtain a plurality of difference values between the test distance andthe actual distance, which are correspond to a plurality of positions ofthe object; calculating an average value of the plurality of differencevalues, the average value is the x-axis, y-axis or z-axis coordinatevalue of the right offset coordinate.
 13. The method of claim 11,wherein the generation of the gesture event comprises: generating anupward gesture event when the y-axis coordinate value of the right wristcoordinate is greater than the y-axis coordinate value of a top edge ofthe right gesture-making area; generating a downward gesture event whenthe y-axis coordinate value of the right wrist coordinate is less thanthe y-axis coordinate value of a bottom edge of the right gesture-makingarea; generating a leftward gesture event when the x-axis coordinatevalue of the right wrist coordinate is greater than the x-axiscoordinate value of a left edge of the right gesture-making area;generating a rightward gesture event when the x-axis coordinate value ofthe right wrist coordinate is less than the x-axis coordinate value of aright edge of the right gesture-making area; generating a forwardgesture event when the z-axis coordinate value of the right wristcoordinate is greater than the z-axis coordinate value of a front edgeof the right gesture-making area; generating a clockwise-rotationgesture event when the right wrist moves through a first group ofgestures in a predetermined time, wherein the first group of gesturescomprises: in a first order, a downward gesture, a leftward gesture andan upward gesture; in a second order, a leftward gesture, an upwardgesture and a rightward gesture; in a third order, an upward gesture, arightward gesture and a downward gesture; or in a fourth order, arightward gesture, a downward gesture and a leftward gesture; andgenerating an anticlockwise-rotation gesture event when the right wristcoordinate satisfies to generate a second group of gesture events in apredetermined time, wherein the second group of gesture eventscomprises: in a fifth order, a downward gesture, a rightward gesture andan upward gesture; in a sixth order, a rightward gesture, an upwardgesture and a leftward gesture; in a seventh order, an upward gesture, aleftward gesture and a downward gesture; or in a eighth order, aleftward gesture, a downward gesture and a rightward gesture.
 14. Themethod of claim 10, wherein the gesture-making area comprises a leftgesture-making area, the coordinate of the center point of thegesture-making area is a coordinate of a center point of the leftgesture-making area, and calculation of the coordinate of the centerpoint of the left gesture-making area further comprises: C(x, y, z)=P(x,y, z)+d(x, y, z), wherein the C(x, y, z) is the coordinate of the centerpoint of the left gesture-making area, the P(x, y, z) is the leftshoulder coordinate, the d(x, y, z) is an arbitrary coordinate that isconfigured to |d(x, y, z)|<D1, the D1 is a maximum distance between theleft shoulder coordinate and the head coordinate, a distance between aleft edge of the left gesture-making area and the center point of theleft gesture-making area is S, S=k*D2, the k is a real number, and theD2 is a distance between the left elbow coordinate and the left wristcoordinate.
 15. The method of claim 14, wherein the offset coordinatecomprises a left offset coordinate, the calculation of the left offsetcoordinate further comprises: (a1) calculating x-axis, y-axis, or z-axistest distance between the center point of the left gesture-making areaand the computing device; (b1) calculating difference value between thetest distance and an actual distance; wherein the actual distance,measured with tool, is a x-axis, y-axis, or z-axis distance between theobject and the computing device; repeating (a1)-(b1) while the positionof the object is changed, to obtain a plurality of difference valuesbetween the test distance and the actual distance, which are correspondto a plurality of positions of the object; calculating an average valueof the plurality of difference values, the average value is the x-axis,y-axis or z-axis coordinate value of the left offset coordinate.
 16. Themethod of claim 14, wherein the generation of the gesture event furthercomprises: generating an upward gesture event when the y-axis coordinatevalue of the left wrist coordinate is greater than the y-axis coordinatevalue of a top edge of the left gesture-making area; generating adownward gesture event when the y-axis coordinate value of the leftwrist coordinate is less than the y-axis coordinate value of a bottomedge of the left gesture-making area; generating a leftward gestureevent when the x-axis coordinate value of the left wrist coordinate isgreater than the x-axis coordinate value of a left edge of the leftgesture-making area; generating a rightward gesture event when thex-axis coordinate value of the left wrist coordinate is less than thex-axis coordinate value of a right edge of the left gesture-making area;generating a forward gesture event when the z-axis coordinate value ofthe left wrist coordinate is greater than the z-axis coordinate value ofa front edge of the left gesture-making area; generating aclockwise-rotation gesture event when the left wrist coordinate movesthrough a first group gestures in a predetermined time, wherein thefirst group of gestures comprises: in a first order, a downward gesture,a leftward gesture and an upward gesture; in a second order, a leftwardgesture, an upward gesture and a rightward gesture; in a third order, anupward gesture, a rightward gesture and a downward gesture; or in afourth order, a rightward gesture, a downward gesture and a leftwardgesture; and generating an anticlockwise-rotation gesture event when theleft wrist coordinate moves through a second group of gestures in apredetermined time, wherein the second group of gestures comprises: in afifth order, a downward gesture, a rightward gesture and an upwardgesture; in a sixth order, a rightward gesture, an upward gesture and aleftward gesture; in a seventh order, an upward gesture, a leftwardgesture and a downward gesture; or in an eighth order, a leftwardgesture, a downward gesture and a rightward gesture.